1
Choisir les lignes à conserver
DSAI2202Lab 7: Reasoning Across Relationships

Le registre et le LMS d'UniLearn ne contiennent pas les mêmes identifiants étudiants. L'équipe a besoin de plusieurs rapports, chacun apportant une réponse différente à la question « Quelles lignes sources doivent apparaître ? »

Réutiliser la base de données du Lab 6

Si vous avez déjà exécuté lab6_7_setup.sql au Lab 6, conservez ces données. Sinon, ouvrez dans pgAdmin le fichier d'installation partagé fourni par votre tuteur et exécutez-le une fois. Sélectionnez lab6_7 dans chaque nouvelle connexion de l'outil de requête.

Commencer par la jointure que vous connaissez

  1. Inspectez students et lms_roster : 22 identifiants du registre et 6 identifiants LMS.
  2. Exécutez la jointure INNER JOIN selon la règle de correspondance du Lab 6.
  3. Identifiez les quatre identifiants présents dans les deux sources.
  4. Expliquez pourquoi ce résultat ne peut constituer une liste complète issue de l'une ou l'autre des sources.

Cinq demandes de rapport

Lister les comptes partagés ; conserver chaque étudiant du registre ; conserver chaque compte LMS ; réconcilier les deux sources ; générer les options étudiant–cours. Vous écrirez des requêtes INNER, LEFT, RIGHT, FULL et CROSS JOIN pour ces demandes.

✍️ Anticiper le contexte manquant
S103 est inscrit au registre mais n'a pas de compte LMS. S901 est importé dans le LMS mais absent du registre. Où chacun devrait-il figurer dans un rapport complet ?
Comptes partagés
SET search_path TO lab6_7;

SELECT s.student_id AS registry_id, s.student_name,
       r.student_id AS lms_id, r.lms_name
FROM students AS s
INNER JOIN lms_roster AS r
  ON s.student_id = r.student_id
ORDER BY s.student_id;
Vérifier les identifiants correspondants

Quatre lignes : S101, S102, S105 et S121. Chaque identifiant est unique dans les deux tables, donc chaque paire correspondante apparaît une seule fois. Ce rapport ne contient que les comptes partagés.

Uma (S121) possède un compte LMS bien qu'elle n'ait aucun cours suivi. Une correspondance de comptes ne prouve pas la participation à un cours.